The present invention relates generally to digital logic circuits, and in particular to a programmable multi-scheme clocking circuit.
Circuits that generate clock signals are prevalent in the electronics art. For many digital circuits, clock signals are necessary to drive various logic elements such as gates, flip-flops, and so on. Clock signals are also used in many other circuits for applications such as modulation, demodulation, and others.
Each application generally has a particular set of specifications for the required clock signal(s). For example, in many applications (e.g., modulation and demodulation), high frequency accuracy and low frequency drift are required. These characteristics can be provided by a crystal oscillator. The frequency of a crystal oscillator is typically accurate to within tens of part per million (ppm) and very stable over temperature and time. For applications whereby moderate frequency accuracy is required, an oscillator using a simple resistor/capacitor (RC) network may be adequate. Generally, a RC oscillator can provide frequency accuracy to within several percents. In some applications, low cost and/or small board space may be the most important considerations, and an internal oscillator is preferred. Finally, some applications require the digital circuits to be operable from an external clock. This may be necessitated, for example, by the need to synchronize various circuits.
Generally, an integrated circuit is designed and targeted for use in one or more specific applications. The clock requirements of the targeted application(s) then determine the clock circuit to be included in the integrated circuit. Based on the clock requirements, a crystal oscillator circuit, a RC oscillator circuit, an internal oscillator circuit, or an external clock buffer can be designed into the integrated circuit. Conventionally, once the design choice has been made for that integrated circuit, its use is generally limited to the specific applications for which it is targeted.
Many integrated circuits perform specialized functions and are suitable for specific applications. However, some general-purpose integrated circuits, such as controllers, find use in a variety of applications. Oftentimes, new applications are discovered for these general-purpose circuits after they have been designed. For these reasons, it is advantageous to provide integrated circuits having flexible and selectable clocking schemes.